The present invention relates generally to reading and writing data on disk drive systems and more particularly to modifying surface-based data mapping to improve the performance of a disk drive system.
Disk drives contain both electronic and mechanical components. It has long been the case that electronic devices have experienced rapid improvements in performancexe2x80x94for the last several years, they have been able to roughly double in speed every eighteen months. However, the performance of the mechanical components have not increased nearly as quickly, because their behavior is limited by the laws of physics, which provide bounds on how fast the mechanical components can be moved for a given applied power and mechanical strength. As a result, the behavior of the mechanical components has tended to dominate the overall performance of disk drives.
A modern disk drive unit contains one or more platters, on the top and bottom surfaces of which data blocks are recorded. These data blocks are grouped into circular 360xc2x0 groups of blocks around the spindle, known as data tracks. The data tracks are packed very closely togetherxe2x80x94often there will be several thousand data tracks per inch of radius. A set of data tracks (one data track per surface) with the same nominal radius from the spindle is known as a cylinder. Data is read or written to a data block by means of a read/write head; there is one such head per platter surface, and the head is moved into position by means of an arm that can rotate about a pivot point. Moving the arm moves the head (this is known as a head seek, or just a seek). There is usually one arm per platter surface, and all the arms are mechanically joined together, so that all the heads also move in unison. Even though the head can be moved very quicklyxe2x80x94traversing from the innermost data track to the outermost one in a few millisecondsxe2x80x94this is still very long compared to the speed of the electronics.
Positioning the read/write heads at the end of a head seek requires exquisite care. The data tracks are so close together that mis-positioning the read/write head by even a tiny fraction of an inch could mean that the wrong data could be read, or (much worse) data could be written in the wrong place. Achieving this fine positioning takes time (referred to as the settling time), during which the head is jiggled back and forth or settled to precisely the right position for the target data track. As data tracks get squeezed ever closer together, the settling time becomes an increasingly important fraction of the entire seek time. This is especially true for small movementsxe2x80x94indeed, it is already the case that the settling time forms the majority of time spent in a small seekxe2x80x94one that moves the head across only a few data tracks.
Because the mechanical positioning times are so important to the performance of disk drives, a great deal of effort has been expended to find ways to minimize the amount of time that a disk drive spends doing such movements. Two basic techniques are used: data layout mappings that minimize the amount of head seeking, and scheduling algorithms that try to minimize the amount of seeking required to perform a set of several read/write requests. Data layouts and scheduling algorithms are generated in two places: (1) in the software that runs on the host computer that uses the disk drive, and (2) in the controller logic of the disk drive itself.
The first type of mapping comes from host-based file systems and database systems, which go to great lengths to lay data out in a manner that takes advantage of the mechanical properties of disk drives. For example, they try to place logically adjacent portions of a single file or database table in physically adjacent locations on the disk drive, so that mechanical motion is minimized. One commonly used scheme is to treat all the data tracks in a cylinder as being xe2x80x9cclose togetherxe2x80x9d, and to try to put all or most of the data blocks of a single file in the same cylinder. The idea here is that once the first read/write head is in position for a data block of the file, then all the other read/write heads will also be lined up, ready to read or write other data blocks of the file without incurring any additional seek time.
The second type of mapping that occurs takes place inside the disk drive itself. This mapping hides low-level details of the disk drive""s data placement from the host file system and database. It allows the disk drive to do sparing (putting aside small regions on a platter to handle the occasional bad spot), and zoning (putting more data blocks on the longer data tracks found near the outside edge of the platters) without having to communicate all the details of how this is done to the host computer system. This mapping is manifested by making the disk drive appear to have a single list of data blocks, numbered consecutively from zero to some large value (these numbers are known as the block addresses). By convention, consecutive logical block addresses are mapped as much as possible to physically adjacent data blocks in the same data track, and then onto vertically adjacent data tracks in the same cylinder, an arrangement known as cylinder-based mapping. This allows the host file systems and databases to assume that data blocks with logical addresses that appear xe2x80x9cclose togetherxe2x80x9d will be placed xe2x80x9cclose togetherxe2x80x9d on the disk drive too from the point of seek distances.
Request scheduling algorithms choose the order in which to perform a set of two or more host requests. These often select an order that minimizes the distance between successive requests (e.g., by sorting them in cylinder order), thereby reducing the average seek distance, and, in turn, increasing the relative proportion of small seeks in the workload sent to the disk drive.
Unfortunately, the simple cylinder model is breaking down in modem disk drives; the data tracks are too close together for them to remain perfectly aligned across the different platters. For example, the power dissipated by the disk motor and electronics may heat up the platters by different amounts, causing them to expand differentially. The effect is that switching from one data track to another data track in the same cylinder (i.e., on a different surface) may require a head repositioning (typically a settling time, but maybe even a short seek across a few data tracks).
Moving one read/write head from one data track to access another data track on the same surface is called a xe2x80x9ctrack switchxe2x80x9d, and switching access from one read/write head to another read/write head for a different surface in the same cylinder is called a xe2x80x9chead switchxe2x80x9d. In today""s disk drive systems, the head switch is slightly quicker than the track switch, but as the data tracks get closer and closer together, this will no longer be the case. In particular, it appears that a track switch may become two or three times faster than a head switch. Thus, continuing to use data layouts that favor head switches over track switches is no longer time efficient. A better approach would be to use track switches instead of head switches wherever possiblexe2x80x94with the result that the disk drive would map its block address space to fill all of one surface before moving on to the next one. Such a scheme might be called a xe2x80x9csurface-basedxe2x80x9d data mapping.
However, applying such a simple surface-based data mapping in the disk drive would be counter-productive; it would conflict with the larger-scale layout optimizations made by today""s file systems and databases, which try to exploit the notion of cylinders inside the disk drive.
The present invention provides an apparatus for surface-based data mapping for a disk drive system and a method of surface-based data mapping. Adjacent data tracks on the data storage surfaces of a disk drive are grouped into data track sets and data track sets on different data storage surfaces are grouped into bunches. The bunches are used to determine how to perform the logical to physical data layout mapping inside the disk drive. A disk drive controller controls disk read/write heads and provides a data layout mapping that maps logically adjacent data blocks to a data track, then to an adjacent data track radially along the same surface in a data track set in a bunch, and then to a different data track in a different data track set in the bunch. This improves the performance of data transfers occurring in the disk drive system and provides a cost optimal order for accessing data on a surface of a data storage platter that takes advantage of characteristics associated with technical advancements in the disk drive system field. It also maintains performance compatibility with current upper-level file system, database, and operating system software.
The present invention further provides an apparatus for surface-based data mapping for a disk drive system and a method of surface-based data mapping in which mapping is performed between adjacent bunches.
The present invention further provides an extension in which the adjacent data tracks on a surface that are grouped into a track set are configured as a spiral, rather than as a set of concentric circles. This further improves the performance of sequential transfers.